package com.ruoyi.common.core.page;

import com.github.pagehelper.PageInfo;
import com.ruoyi.common.constant.HttpStatus;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 表格分页数据对象
 *
 * @author ruoyi
 */
@Data
public class TableDataInfo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 是否成功
     *
     * @author gdk
     * @since 2023/5/20 16:29
     */
    private boolean isSuccess;

    /**
     * 总记录数
     */
    private long total;

    /**
     * 列表数据
     */
    private List<?> rows;

    /**
     * 消息状态码
     */
    private int code;

    /**
     * 消息内容
     */
    private String msg;

    /**
     * 表格数据对象
     */
    public TableDataInfo() {
    }

    /**
     * 分页
     *
     * @param list  列表数据
     * @param total 总记录数
     */
    public TableDataInfo(List<?> list, int total) {
        this.isSuccess = true;
        this.rows = list;
        this.total = total;
    }

    /**
     * 返回voList时，使用的构造函数，解决从voList上PageInfo无法获取到数据的问题
     *
     * @param srcList 源list
     * @param voList  voList
     * @author gdk
     * @since 2023/5/20 16:30
     */
    public TableDataInfo(List<?> srcList, List<?> voList) {
        this.isSuccess = true;
        this.code = HttpStatus.SUCCESS;
        this.msg = "查询成功";
        this.rows = voList;
        this.setTotal(new PageInfo<>(srcList).getTotal());
    }
}
